﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Models;
namespace DAL
{
    public class sp_userDAL
    {
        MyShoppingDB_VueEntities context = new MyShoppingDB_VueEntities();
        public sp_user GetUser(string username, string password)
        {
            var uobj = context.Set<sp_user>().SingleOrDefault(p => p.username == username
              && p.password == password);
            if (uobj != null)
            {
                return uobj;
            }
            else
            {
                return null;
            }
        }

        #region 查询所有
        public List<sp_user> GetAllUser()
        {
            try
            {
                return context.sp_user.ToList();
            }
            catch (Exception ex)
            {
                throw ex;
            }
          
        }
        #endregion

        #region 修改方法
        public int ModifyUser(sp_user user)
        {
            //
            context.Set<sp_user>().Attach(user);//要修改的对象放入容器中管理
            //数据访问层需要引用程序集  System.Data.Entity  右击=>引用=> net 框架，找到system.data.entity
            context.Entry<sp_user>(user).State = System.Data.Entity.EntityState.Modified;
            //调用修改
            return context.SaveChanges();
        }
        #endregion

        #region 获取单个对象
        public sp_user GetOne(int id)
        {
            //以主键获取一条数据
            sp_user customobj = context.Set<sp_user>().Find(id);
            return customobj;
        }
        #endregion

        #region 增加单个对象
        public int Add(sp_user obj)
        {
            //使用上下文泛型类形式实现
            context.Set<sp_user>().Add(obj);
            return context.SaveChanges();
        }
        #endregion

        #region 删除一条数据 以主键列的类型
        public int DeleteOne(int id)
        {
            //以主键获取一条数据,如果不是主键查询,可以采用Linq SingleOrDefault 之类的方法

            sp_user customobj = context.Set<sp_user>().Find(id);
            context.Set<sp_user>().Remove(customobj);
            return context.SaveChanges();
        }
        #endregion



    }
}
